PowerShell-এর Pull এবং Push মোড দুটি আলাদা কনসেপ্ট যা সাধারণত Configuration Management এবং Automation এর জন্য ব্যবহৃত হয়। এগুলো মূলত Automation Tools এবং Remote Management এ ব্যবহৃত হয়, এবং এগুলোর মাধ্যমে আপনি দূরবর্তী সিস্টেমে কনফিগারেশন প্রয়োগ এবং ডাটা ট্রান্সফার করতে পারেন।
Pull Mode
Pull Mode একটি পদ্ধতি যেখানে সিস্টেম (ক্লায়েন্ট) নিজেই রিমোট রিসোর্স থেকে কনফিগারেশন বা স্ক্রিপ্ট আনপুল (pull) করে নেয়। এই মোডে, সিস্টেম বা ক্লায়েন্ট নিজে থেকেই কনফিগারেশন ম্যানেজার (যেমন Azure Automation, Puppet, Chef) অথবা রিমোট সার্ভার থেকে কনফিগারেশন তথ্য নিয়ে আসে।
Pull Mode-এ কাজের মূল পদ্ধতি:
- ক্লায়েন্ট (যেমন একটি VM বা সার্ভার) নিজেই কনফিগারেশন বা স্ক্রিপ্টগুলিকে পুল করে নেয় নির্দিষ্ট সময় পর পর।
- এটি সেন্ট্রাল কনফিগারেশন স্টোরেজের মাধ্যমে পরিচালিত হয়।
- PowerShell DSC (Desired State Configuration) এর মতো টুলস Pull Mode-এ কাজ করে, যেখানে একটি নির্দিষ্ট কনফিগারেশন ডাটাবেস থেকে ইনস্ট্রাকশন পুল করা হয়।
PowerShell DSC Pull Mode কনফিগারেশন
PowerShell-এ DSC Pull Mode কনফিগার করার জন্য, আপনাকে একটি Pull Server এবং একটি Client Configuration ফাইল তৈরি করতে হবে। এখানে DSC Pull Server সাধারণত WMF (Windows Management Framework) এর মাধ্যমে কনফিগার করা হয়।
- DSC Pull Server কনফিগার করা:
Install-WindowsFeature -Name DSC-Service
Start-Service -Name DSC-Service
- Pull Server ফাইল কনফিগার করা: Pull Server-এর জন্য একটি MOF (Management Object Format) ফাইল তৈরি করুন।
Configuration MyDscConfiguration {
Node 'localhost' {
WindowsFeature IIS {
Name = 'Web-Server'
Ensure = 'Present'
}
}
}
- Client Configuration: Client (যেমন একটি VM) কে Pull Mode-এ পরিচালনা করতে হবে।
Start-DscConfiguration -Path 'C:\DSC\Config' -Wait -Force
Push Mode
Push Mode-এ, কনফিগারেশন বা স্ক্রিপ্ট সেন্ট্রাল সার্ভার বা ম্যানেজার থেকে পুশ (push) করে ক্লায়েন্ট সিস্টেমে পাঠানো হয়। সাধারণত, এই মোডে অ্যাডমিনিস্ট্রেটর সেন্ট্রাল সিস্টেম থেকে সরাসরি ডিস্ট্রিবিউট করেন।
Push Mode-এ কাজের মূল পদ্ধতি:
- অ্যাডমিনিস্ট্রেটর বা Automation Server ক্লায়েন্ট সিস্টেমে কনফিগারেশন বা স্ক্রিপ্ট পুশ করে দেয়।
- এটি সাধারণত PowerShell Remoting, Ansible, Puppet, বা Chef-এ ব্যবহৃত হয়, যেখানে অ্যাডমিন সিস্টেমের উপর সরাসরি নিয়ন্ত্রণ রাখেন।
PowerShell Remoting এর মাধ্যমে Push Mode
PowerShell Remoting-এ Push Mode ব্যবহার করার জন্য, Enter-PSSession বা Invoke-Command ব্যবহার করা হয়। এই কমান্ডগুলির মাধ্যমে একাধিক রিমোট সিস্টেমে কমান্ড পুশ করা যায়।
- PowerShell Remoting চালু করা: PowerShell Remoting চালু করার জন্য প্রথমে Enable-PSRemoting কমান্ড চালাতে হবে:
Enable-PSRemoting -Force
- Remote Command Push করা: Invoke-Command ব্যবহার করে একাধিক রিমোট সিস্টেমে একযোগভাবে কমান্ড চালানো যায়।
Invoke-Command -ComputerName "RemoteServer" -ScriptBlock {
Get-Service
}
এটি RemoteServer এ Get-Service কমান্ডটি পুশ করে চালাবে এবং রেজাল্ট ক্লায়েন্ট সিস্টেমে দেখাবে।
- Enter-PSSession দিয়ে Remote Connection: আপনি যদি একক সিস্টেমে Push Mode ব্যবহার করতে চান, তবে Enter-PSSession ব্যবহার করতে পারেন:
Enter-PSSession -ComputerName "RemoteServer"
এটি আপনাকে রিমোট সিস্টেমে সংযুক্ত করবে এবং আপনি সেখানে কমান্ড পুশ করে কাজ করতে পারবেন।
Pull এবং Push Mode-র মধ্যে পার্থক্য
| Feature | Pull Mode | Push Mode |
|---|---|---|
| Control | ক্লায়েন্ট নিজে কনফিগারেশন বা স্ক্রিপ্ট পুল করে নেয় | অ্যাডমিন বা সেন্ট্রাল সিস্টেম ক্লায়েন্টে স্ক্রিপ্ট পুশ করে |
| Automation | সার্ভার থেকে ক্লায়েন্টে নিয়মিত কনফিগারেশন পুল করা হয় | অ্যাডমিন সরাসরি ক্লায়েন্টে কনফিগারেশন পুশ করেন |
| Use Case | Continuous integration/management | Instant task execution, one-time configuration |
| Example | PowerShell DSC, Azure Automation | PowerShell Remoting, Ansible, Chef, Puppet |
Conclusion
PowerShell-এ Pull Mode এবং Push Mode দুটি ভিন্ন পদ্ধতি যা ক্লায়েন্ট সিস্টেমে কনফিগারেশন বা স্ক্রিপ্ট প্রয়োগের জন্য ব্যবহৃত হয়। Pull Mode সাধারণত অটোমেটিক কনফিগারেশন ম্যানেজমেন্টের জন্য উপযুক্ত, যেখানে ক্লায়েন্ট নিজে কনফিগারেশন নেয়। অন্যদিকে, Push Mode দ্রুত কনফিগারেশন প্রয়োগের জন্য ব্যবহৃত হয়, যেখানে অ্যাডমিন ক্লায়েন্ট সিস্টেমে কনফিগারেশন পুশ করেন।
Read more